#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

int main(int argc, char const *argv[])
{
	// 创建一个子进程
	pid_t son = fork();
	if(son > 0) // 父进程
	{
		printf("我是父进程\n");
		printf("当前pid=%d\n", getpid());
		printf("当前的父进程pid=%d\n", getppid());
		// sleep(1); // 等待子进程结束
		// wait(NULL); // 等待子进程退出，不关注子进程的退出值
		/*获取子进程的退出状态值*/
		int status; // 用于存储子进程的退出值
		int ret = wait(&status);
		printf("ret = %d\n", ret); // 6573(子进程的pid)
		printf("status = %d\n", status>>8);//（44）（只有一个字节有效）

	}
	else if(son == 0) // 子进程
	{
		printf("我是子进程\n");
		printf("当前的pid=%d\n", getpid()); // 6573
		printf("当前的父进程pid=%d\n", getppid()); // 6572
		return 300; // 返回300给父进程
	}
	
	return 0;
}
